home *** CD-ROM | disk | FTP | other *** search
/ Tripas 5 / TRIPAS 005.iso / Wos.EXE / base / maps / phoenix.scr < prev    next >
Encoding:
Text File  |  1999-02-24  |  57.9 KB  |  2,548 lines

  1. setdialogscript dialog/dialog_muntp.scr
  2.  
  3. // Game Variables
  4. /////////////////////////////////////////////////////////////////////////////
  5.  
  6.  
  7. // Level Variables
  8. /////////////////////////////////////////////////////////////////////////////
  9. level.Skill getcvar skill
  10.  
  11. //level.speech1_cinematic_thread
  12. //level.speech1_dialog_thread
  13. //level.speech1_dialog_call_thread
  14.  
  15. level.missile_deploy_status = 0
  16.  
  17. level.dome_enemies_killed = 0
  18.  
  19. level.gears_status = 0
  20. level.telescope_status = 0
  21. level.telescope_angle = 0
  22. level.dome_door_status = 0
  23.  
  24. level.greencard_status = 0
  25. level.yellowcard_status = 0
  26.  
  27. level.escape_lift_inuse = 0
  28.  
  29. // Mission Objective States - 0 not accomplished 1 = success 2 = fail 3 = not available
  30. level.PObjective1 = 0 // Locate Elexis Sinclaire
  31. level.PObjective2 = 3 // Find The Missile Control Room
  32.  
  33.  
  34. // Script Initialization
  35. /////////////////////////////////////////////////////////////////////////////
  36. thread init_thread
  37. thread init_elevator_thread
  38. thread init_warheads_thread
  39. thread init_warhead_equipment_thread
  40. thread init_missile_thread
  41. thread init_telescope_thread
  42.  
  43. // General
  44. thread elevator_thread
  45.  
  46. // Characters
  47. thread init_character_items_thread
  48.  
  49. $tech01 thread tech01_thread
  50. $tech01 thread tech01_thread
  51.  
  52. $elexis1 thread elexis1_thread
  53. $elexis2 thread elexis2_thread
  54.  
  55. $confguy01 thread confguy01_thread
  56. $confguy02 thread confguy02_thread
  57. $confguy03 thread confguy03_thread
  58. $confguy04 thread confguy04_thread
  59. $confguy05 thread confguy05_thread
  60. $confguy06 thread confguy06_thread
  61.  
  62. $manu01 thread manu01_thread
  63. $sarge01 thread sarge01_thread
  64. $sarge02 thread sarge02_thread
  65. $sarge03 thread sarge03_thread
  66.  
  67. // Consoles
  68. //thread telescope_console_thread
  69.  
  70. end // Script Initialization
  71.  
  72.  
  73. // init_thread:
  74. /////////////////////////////////////////////////////////////////////////////
  75. init_thread:
  76.  
  77. $breakout1 setdamage 300
  78. $breakout2 setdamage 300
  79. $breakout3 setdamage 300
  80. $breakout4 setdamage 300
  81. $breakout5 setdamage 300
  82. $breakout6 setdamage 300
  83.  
  84. // lock doors
  85. $front_office_door lock
  86. $control_room_door lock
  87.  
  88. $conf_door1 lock
  89. $conf_door2 lock
  90. $conf_door3 lock
  91. $conf_door4 lock
  92.  
  93. $door5 lock
  94. $door6 lock
  95. $outside_door lock
  96.  
  97. // setup the big gears
  98. $gear1 jumpto $gear1_way1
  99. $gear2 jumpto $gear2_way1
  100. $gear3 jumpto $gear3_way1
  101.  
  102. $gear1 time 0.1
  103. $gear1 rotateYdown 10
  104. waitFor $gear1
  105.  
  106. // setup elexis' escape elevator
  107. $escape_liftsides bind $escape_lift
  108. wait 0.1
  109.  
  110. $escape_lift jumpto $escape_lift_way1
  111.  
  112. end // init_thread
  113.  
  114.  
  115. // init_elevator_thread:
  116. /////////////////////////////////////////////////////////////////////////////
  117. init_elevator_thread:
  118.  
  119. $elevator_innerdoor bind $elevator
  120. $elevator_use bind $elevator
  121.  
  122. end // init_elevator_thread
  123.  
  124.  
  125. // init_warheads_thread:
  126. /////////////////////////////////////////////////////////////////////////////
  127. init_warheads_thread:
  128.  
  129. $warhead1 jumpto $warhead1_way1
  130.  
  131. $warhead2_clip bind $warhead2
  132. wait 0.1
  133.  
  134. $warhead2 jumpto $warhead2_way1
  135.  
  136. $warhead2 time 0.1
  137. $warhead2 rotateZup 90
  138. waitFor $warhead2
  139.  
  140. end // init_warheads_thread
  141.  
  142.  
  143. // init_warhead_equipment_thread:
  144. ////////////////////////////////////////////////////////////////////////////
  145. init_warhead_equipment_thread:
  146.  
  147. // setup the warhead elevator
  148. $wh_elev_clip bind $wh_elev_plat
  149. wait 0.1
  150.  
  151. $wh_elev_plat jumpto $wh_elev_plat_way1
  152.  
  153. $wh_elev_top1 bind $wh_elev_bottom1
  154. $wh_elev_top2 bind $wh_elev_bottom2
  155. wait 0.1
  156.  
  157. $wh_elev_bottom1 time 0.1
  158. $wh_elev_bottom2 time 0.1
  159. $wh_elev_top1 time 0.1
  160. $wh_elev_top2 time 0.1
  161. $wh_elev_bottom1 rotateXup 13
  162. $wh_elev_bottom2 rotateXdown 13
  163. $wh_elev_top1 rotateXdown 26
  164. $wh_elev_top2 rotateXup 26
  165. waitFor $wh_elev_top2
  166.  
  167. // setup the warhead lift
  168. $wh_lift time 0.1
  169. $wh_lift moveUp 32
  170. waitFor $wh_lift
  171.  
  172. end // init_warhead_equipment_thread
  173.  
  174.  
  175. // init_missile_thread:
  176. ////////////////////////////////////////////////////////////////////////////
  177. init_missile_thread:
  178.  
  179. $carrier_arm bind $carrier_base
  180. $carrier_lift bind $carrier_arm
  181. $carrier_holder bind $carrier_lift
  182. $missile bind $carrier_holder
  183. wait 0.1
  184.  
  185. $carrier_base jumpto $missile_way1
  186.  
  187. end // init_missile_thread
  188.  
  189.  
  190. // init_telescope_thread:
  191. ////////////////////////////////////////////////////////////////////////////
  192. init_telescope_thread:
  193.  
  194. $tele_base bind $tele_arm
  195. $tele_section1 bind $tele_base
  196. $tele_section2 bind $tele_section1
  197. $tele_lens bind $tele_section1
  198. wait 0.1
  199.  
  200. // Put the telescope in retracted state
  201. $tele_lens time 0.1
  202. $tele_section2 time 0.1
  203. $tele_lens moveEast 64
  204. $tele_section2 moveWest 256
  205. waitFor $tele_section2
  206.  
  207. $tele_base time 0.1
  208. $tele_arm time 0.1
  209. $tele_base moveDown 192
  210. $tele_arm moveWest 192
  211. waitFor $tele_arm
  212.  
  213. end // init_telescope_thread
  214.  
  215.  
  216. //===========================================================================
  217. //===========================================================================
  218. // CINEMATICS
  219. //===========================================================================
  220. //===========================================================================
  221. // speech1_cinematic_thread:
  222. /////////////////////////////////////////////////////////////////////////////
  223. speech1_cinematic_thread:
  224.  
  225. fadeout 0.1 0 0 0
  226.  
  227. WaitForPlayer
  228.  
  229. fadeout 0.1 0 0 0
  230.  
  231. freezeplayer
  232. cinematic
  233. hud 0
  234.  
  235. music mystery normal
  236.  
  237. $conf_cinematic_camera1 jumpto $conf_cinematic_campath1
  238. cuecamera $conf_cinematic_camera1
  239. $conf_cinematic_camera1 lookat $elexis1
  240. wait 2
  241.  
  242. fadein 1 0 0 0
  243. wait 1
  244.  
  245. $conf_cinematic_camera1 follow $conf_cinematic_campath1 $elexis1
  246. wait 0.5
  247.  
  248. trigger $elexis1
  249. thread speech1_dialog_thread
  250. level.speech1_dialog_call_thread = parm.previousthread
  251. skipthread speech1_cinematic_skip_thread
  252. waitForThread level.speech1_dialog_call_thread
  253.  
  254. // clean up the cinematic
  255. fadeout 1 0 0 0
  256. wait 1
  257.  
  258. cueplayer
  259.  
  260. fadein 1 0 0 0
  261. wait 1
  262.  
  263. hud 1
  264. noncinematic
  265. releaseplayer
  266.  
  267. end // speech1_cinematic_thread
  268.  
  269.  
  270. // speech1_cinematic_skip_thread:
  271. /////////////////////////////////////////////////////////////////////////////
  272. speech1_cinematic_skip_thread:
  273.  
  274. skipthread ""
  275.  
  276. terminate level.speech1_cinematic_thread
  277. terminate level.speech1_dialog_call_thread
  278. terminate level.speech1_dialog_thread
  279.  
  280. // clean up the cinematic
  281. fadeout 1 0 0 0
  282. wait 1
  283.  
  284. cueplayer
  285.  
  286. fadein 1 0 0 0
  287. wait 1
  288.  
  289. hud 1
  290. noncinematic
  291. releaseplayer
  292.  
  293. end // speech1_cinematic_skip_thread
  294.  
  295.  
  296. // speech2_cinematic_thread:
  297. /////////////////////////////////////////////////////////////////////////////
  298. speech2_cinematic_thread:
  299.  
  300. freezeplayer
  301. cinematic
  302.  
  303. fadeout 1 0 0 0
  304. wait 1
  305.  
  306. hud 0
  307.  
  308. $conf_cinematic_camera2 jumpto $conf_cinematic_campath2
  309. cuecamera $conf_cinematic_camera2
  310. $conf_cinematic_camera2 lookat $cinematic_camera2_target
  311. $conf_cinematic_camera2 follow $conf_cinematic_campath2 $cinematic_camera2_target
  312. wait 1
  313.  
  314. fadein 1 0 0 0
  315. wait 1
  316.  
  317. thread speech2_dialog_thread
  318. waitForThread parm.previousthread
  319.  
  320. thread elexis_flee_dialog_thread
  321. waitForThread parm.previousthread
  322.  
  323. fadeout 1 0 0 0
  324. wait 1
  325.  
  326. cueplayer
  327. hud 1
  328.  
  329. fadein 1 0 0 0
  330. wait 1
  331.  
  332. noncinematic
  333. releaseplayer
  334. wait 2
  335.  
  336. thread find_elexis_misscomp_thread
  337.  
  338. end // speech2_cinematic_thread
  339.  
  340.  
  341. // comotion_thread:
  342. /////////////////////////////////////////////////////////////////////////////
  343. comotion_thread:
  344.  
  345. $confguy02 playsound misc/scared/whois.wav 3
  346. wait 2
  347.  
  348. trigger $confguy02
  349. $confguy03 playsound misc/scared/whatthe.wav 3
  350. wait 1
  351.  
  352. trigger $confguy03
  353. $confguy04 playsound misc/civfem/pain2.wav 3
  354. wait 1.5
  355.  
  356. trigger $confguy04
  357. $confguy05 playsound misc/scared/what1.wav 3
  358. wait 0.5
  359.  
  360. trigger $confguy05
  361. $confguy06 playsound misc/scared/whatthe.wav 3
  362. wait 1
  363.  
  364. trigger $confguy06
  365. trigger $confguy01
  366. $confguy01 playsound misc/civfem/scream.wav 3
  367.  
  368.  
  369. end // comotion_thread
  370.  
  371.  
  372. //===========================================================================
  373. //===========================================================================
  374. // GENERAL
  375. //===========================================================================
  376. //===========================================================================
  377. // elevator_thread:
  378. ////////////////////////////////////////////////////////////////////////////
  379. elevator_thread:
  380.  
  381. thread speech1_cinematic_thread
  382. level.speech1_cinematic_thread = parm.previousthread
  383. waitForThread level.speech1_cinematic_thread
  384. wait 1
  385.  
  386. thread phoenix_start_misscomp_thread
  387.  
  388. $elevator playsound environment/elevator/elev2.wav
  389.  
  390. $elevator speed 256
  391. $elevator moveto $elevator_way2
  392. waitFor $elevator
  393.  
  394. $elevator_outterdoor_area open
  395.  
  396. $elevator speed 128
  397. $elevator_outterdoor speed 128
  398. $elevator moveUp 136
  399. $elevator_outterdoor moveUp 136
  400. waitFor $elevator_outterdoor
  401.  
  402. $elevator stopsound
  403. $elevator_innerdoor playsound environment/doors/pneu/smlpnu.wav
  404.  
  405. $elevator_innerdoor time .5
  406. $elevator_innerdoor moveDown 92
  407. waitFor $elevator_innerdoor
  408.  
  409. $elevator ontrigger elevator_retract
  410. pause
  411.  
  412. elevator_retract:
  413. $elevator notrigger
  414.  
  415. $elevator_innerdoor time .5
  416. $elevator_innerdoor moveUp 92
  417. waitFor $elevator_innerdoor
  418.  
  419. $elevator speed 128
  420. $elevator_outterdoor speed 128
  421. $elevator moveDown 136
  422. $elevator_outterdoor moveDown 136
  423. waitFor $elevator_outterdoor
  424.  
  425. $elevator_outterdoor_area close
  426.  
  427. end // elevator_thread
  428.  
  429.  
  430. // telescope_sequence_thread:
  431. ////////////////////////////////////////////////////////////////////////////
  432. telescope_sequence_thread:
  433.  
  434. parm.Angle = 20
  435. thread set_telescope_angle_thread
  436. waitForThread parm.previousthread
  437.  
  438. end // telescope_sequence_thread
  439.  
  440.  
  441. // set_telescope_angle_thread:
  442. /////////////////////////////////////////////////////////////////////////////
  443. set_telescope_angle_thread:
  444. local.Angle = parm.Angle
  445.  
  446. level.telescope_angle ifgreater local.Angle goto set_telescope_angle_up
  447. level.telescope_angle ifless local.Angle goto set_telescope_angle_down
  448. goto set_telescope_angle_done
  449.  
  450. set_telescope_angle_down:
  451. local.AngleDelta = level.telescope_angle
  452. local.AngleDelta -= local.Angle
  453. local.AngleTime = local.AngleDelta
  454. local.AngleTime /= 5
  455.  
  456. local.AngleTime ifless 0 local.AngleTime *= -1
  457.  
  458. $tele_section1 playsound environment/Amb_Machine/mechamb2.wav 2
  459.  
  460. $tele_section1 time local.AngleTime
  461. $tele_section1 rotateXup local.AngleDelta
  462. waitFor $tele_section1
  463.  
  464. $tele_section1 stopsound
  465.  
  466. level.telescope_angle = local.Angle
  467.  
  468. goto set_telescope_angle_done
  469.  
  470. set_telescope_angle_up:
  471. local.AngleDelta = local.Angle
  472. local.AngleDelta -= level.telescope_angle
  473. local.AngleTime = local.AngleDelta
  474. local.AngleTime /= 5
  475.  
  476. local.AngleTime ifless 0 local.AngleTime *= -1
  477.  
  478. $tele_section1 playsound environment/Amb_Machine/mechamb2.wav 2
  479. $tele_section1 time local.AngleTime
  480. $tele_section1 rotateXdown local.AngleDelta
  481. waitFor $tele_section1
  482. $tele_section1 stopsound
  483.  
  484. level.telescope_angle = local.Angle
  485.  
  486. goto set_telescope_angle_done
  487.  
  488. set_telescope_angle_done:
  489.  
  490. end // set_telescope_angle_thread
  491.  
  492.  
  493. // retract_telescope_thread:
  494. /////////////////////////////////////////////////////////////////////////////
  495. retract_telescope_thread:
  496.  
  497. level.missile_deploy_status ifequal 1 goto retract_telescope_forced
  498. level.telescope_status ifnotequal 1 goto retract_telescope_done
  499.  
  500. retract_telescope_forced:
  501. parm.Angle = 0
  502. thread set_telescope_angle_thread
  503. waitForThread parm.previousthread
  504.  
  505. $tele_section2 playsound environment/machine/synmach/Lv2rng.wav
  506.  
  507. $tele_lens time 2
  508. $tele_section2 time 6
  509. $tele_lens moveEast 64
  510. $tele_section2 moveWest 256
  511. waitFor $tele_section2
  512.  
  513. $tele_section2 stopsound
  514.  
  515. level.telescope_status ifnotequal 1 goto retract_telescope_done
  516.  
  517. thread retract_gears_thread
  518. thread close_dome_door_thread
  519.  
  520. $tele_arm playsound environment/machine/lrgmach/bigabs.wav
  521.  
  522. $tele_base time 4
  523. $tele_base moveDown 192
  524. waitFor $tele_base
  525.  
  526. $tele_arm time 4
  527. $tele_arm moveWest 192
  528. waitFor $tele_arm
  529.  
  530. $tele_arm stopsound
  531.  
  532. level.telescope_status = 0
  533.  
  534. retract_telescope_done:
  535.  
  536. end // retract_telescope_thread
  537.  
  538.  
  539. // destroy_telescope_retracted_thread:
  540. /////////////////////////////////////////////////////////////////////////////
  541. destroy_telescope_retracted_thread:
  542.  
  543. level.telescope_status = 2
  544.  
  545. $tele_lens unbind $tele_section1
  546. $tele_section2 unbind $tele_section1
  547. $tele_section1 unbind $tele_base
  548. $tele_base unbind $tele_arm
  549.  
  550. $tele_base bind $tele_arm
  551.  
  552. $tele_section2 shatter "0 0 0" 100 50 200 .1 0
  553. $tele_lens shatter "0 0 0" 50 10 50 .1 0
  554. $tele_base shatter "0 1 1" 150 25 100 .1 0
  555. $tele_shatter1 shatter "0 0 0" 50 10 50 .5 0
  556.  
  557. $tele_section2 remove
  558. $tele_lens remove
  559. $tele_shatter1 remove
  560.  
  561. thread destroy_retracted_telescope_base_thread
  562. thread destroy_retracted_telescope_section1_thread
  563.  
  564. end // destroy_telescope_retracted_thread
  565.  
  566.  
  567. // destroy_retracted_telescope_base_thread:
  568. /////////////////////////////////////////////////////////////////////////////
  569. destroy_retracted_telescope_base_thread:
  570.  
  571. $tele_arm time .5
  572. $tele_arm moveSouth 96
  573. $tele_arm moveUp 64
  574. $tele_arm rotateXup 15
  575. $tele_arm rotateYup 15
  576. $tele_arm rotateZdown 10
  577. waitFor $tele_arm
  578.  
  579. end // destroy_retracted_telescope_base_thread
  580.  
  581.  
  582. // destroy_retracted_telescope_section1_thread:
  583. /////////////////////////////////////////////////////////////////////////////
  584. destroy_retracted_telescope_section1_thread:
  585.  
  586. $tele_section1 rotateY 120
  587.  
  588. $tele_section1 time .6
  589. $tele_section1 moveto $teledestroy1_way1
  590. waitFor $tele_section1
  591.  
  592. $tele_section1 time .5
  593. $tele_section1 moveto $teledestroy1_way2
  594. waitFor $tele_section1
  595.  
  596. $tele_section1 time .4
  597. $tele_section1 moveto $teledestroy1_way3
  598. waitFor $tele_section1
  599.  
  600. $tele_section1 time .3
  601. $tele_section1 moveto $teledestroy1_way4
  602. waitFor $tele_section1
  603.  
  604. $tele_section1 shatter "0 1 1" 100 20 100 .2 0
  605.  
  606. $tele_section1 time 1
  607. $tele_section1 moveto $teledestroy1_way5
  608. waitFor $tele_section1
  609.  
  610. $tele_section1 rotateY 0
  611.  
  612. end // destroy_retracted_telescope_section1_thread
  613.  
  614.  
  615. // expand_telescope_thread:
  616. /////////////////////////////////////////////////////////////////////////////
  617. expand_telescope_thread:
  618.  
  619. level.telescope_status ifnotequal 0 goto expand_telescope_done
  620.  
  621. thread expand_gears_thread
  622. thread open_dome_door_thread
  623.  
  624. $tele_arm playsound environment/machine/lrgmach/bigabs.wav
  625.  
  626. $tele_arm time 4
  627. $tele_arm moveEast 192
  628. waitFor $tele_arm
  629.  
  630. $tele_base time 4
  631. $tele_base moveUp 192
  632. waitFor $tele_base
  633.  
  634. $tele_arm stopsound
  635. $tele_section2 playsound environment/machine/synmach/Lv2rng.wav
  636.  
  637. $tele_lens time 2
  638. $tele_section2 time 6
  639. $tele_lens moveWest 64
  640. $tele_section2 moveEast 256
  641. waitFor $tele_section2
  642.  
  643. $tele_section2 stopsound
  644.  
  645. level.telescope_status = 1
  646.  
  647. expand_telescope_done:
  648.  
  649. end // expand_telescope_thread
  650.  
  651.  
  652. // destroy_telescope_expanded_thread:
  653. /////////////////////////////////////////////////////////////////////////////
  654. destroy_telescope_expanded_thread:
  655.  
  656. level.telescope_status = 2
  657.  
  658. $tele_lens unbind $tele_section1
  659. $tele_section2 unbind $tele_section1
  660. $tele_section1 unbind $tele_base
  661. $tele_base unbind $tele_arm
  662.  
  663. $tele_section1 bind $tele_base
  664. $tele_section2 bind $tele_section1
  665.  
  666. $tele_lens shatter "0 0 0" 50 10 30 .1 0
  667. $tele_base shatter "0 0 0" 100 25 50 .1 0
  668. $tele_shatter1 shatter "0 1 0" 50 10 50 .5 0
  669.  
  670. $tele_lens remove
  671. $tele_shatter1 remove
  672.  
  673. $tele_section1 time 1
  674. $tele_arm time 1
  675. $tele_base time 1
  676. $tele_section1 rotateXup level.telescope_angle
  677. $tele_arm rotateZdown 45
  678. $tele_arm rotateXup 35
  679. $tele_base rotateZdown 45
  680. $tele_base rotateXup 35
  681. waitFor $tele_base
  682.  
  683. $tele_section2 rotateY -60
  684.  
  685. $tele_arm time .7
  686. $tele_base time .7
  687. $tele_arm moveDown 176
  688. $tele_arm rotateXdown 35
  689. $tele_arm rotateZdown 35
  690. $tele_base moveDown 170
  691. $tele_base rotateXdown 35
  692. $tele_base rotateZdown 35
  693. waitFor $tele_base
  694.  
  695. $tele_section2 unbind $tele_section1
  696. $tele_section1 unbind $tele_base
  697. $tele_section1 shatter "0 1 1" 100 20 80 .05 0
  698. $tele_section2 shatter "0 0 1" 200 20 50 .1 0
  699. wait .1
  700.  
  701. $tele_section2 remove
  702. $tele_section1 rotateY -40
  703.  
  704. $tele_section1 time 1
  705. $tele_section1 moveto $teledestroy2_way1
  706. waitFor $tele_section1
  707.  
  708. $tele_section1 rotateY 0
  709.  
  710. end // destroy_telescope_expanded_thread
  711.  
  712.  
  713. // expand_gears_thread:
  714. /////////////////////////////////////////////////////////////////////////////
  715. expand_gears_thread:
  716. local.count = 1
  717.  
  718. level.gears_status ifnotequal 0 goto retract_gears_done
  719. $gear1 playsound environment/levelsnds/muntp/observ2.wav 2
  720.  
  721. retract_gears_loop:
  722. level.gears_status ifnotequal 0 goto retract_gears_done
  723. local.count ifgreater 8 goto retract_gears_done
  724.  
  725. $gear1 time 1
  726. $gear2 time 1
  727. $gear3 time 1
  728. $gear1 rotateYup 31
  729. $gear2 rotateZup 31
  730. $gear3 moveSouth 60
  731. waitFor $gear3
  732. local.count += 1
  733.  
  734. goto retract_gears_loop
  735.  
  736. retract_gears_done:
  737. level.gears_status ifnotequal 2 level.gears_status = 1
  738. $gear1 stopsound
  739.  
  740. end // expand_gears_thread
  741.  
  742.  
  743. // retract_gears_thread:
  744. /////////////////////////////////////////////////////////////////////////////
  745. retract_gears_thread:
  746. local.count = 1
  747.  
  748. level.gears_status ifnotequal 1 goto expand_gears_done
  749. $gear1 playsound environment/levelsnds/muntp/observ2.wav 2
  750.  
  751. expand_gears_loop:
  752. level.gears_status ifnotequal 1 goto expand_gears_done
  753. local.count ifgreater 8 goto expand_gears_done
  754.  
  755. $gear1 time 1
  756. $gear2 time 1
  757. $gear3 time 1
  758. $gear1 rotateYdown 31
  759. $gear2 rotateZdown 31
  760. $gear3 moveNorth 60
  761. waitFor $gear3
  762. local.count += 1
  763.  
  764. goto expand_gears_loop
  765.  
  766. expand_gears_done:
  767. level.gears_status ifnotequal 2 level.gears_status = 0
  768. $gear1 stopsound
  769.  
  770. end // retract_gears_thread
  771.  
  772.  
  773. // ready_missile_thread:
  774. ////////////////////////////////////////////////////////////////////////////
  775. ready_missile_thread:
  776.  
  777. $warhead1 bind $wh_elev_plat
  778. wait 5
  779.  
  780. // Open the door and raise the warhead to missile height
  781. thread open_warhead_door_thread
  782. waitForThread parm.previousthread
  783.  
  784. thread raise_warhead_elevator_thread
  785. waitForThread parm.previousthread
  786.  
  787. // Move the warhead ontop of the missile
  788. $wh_lift playsound environment/levelsnds/muntp/observ2.wav
  789. $wh_lift time 1
  790. $wh_lift moveDown 32
  791. waitFor $wh_lift
  792. $wh_lift stopsound
  793.  
  794. wait 1
  795.  
  796. $warhead1 playsound environment/machine/pneumach/Mchhss5.wav
  797. $warhead1 unbind $wh_elev_plat
  798. $warhead1 bind $wh_lift
  799.  
  800. wait 3
  801.  
  802. $wh_lift playsound environment/levelsnds/muntp/observ2.wav
  803. $wh_lift time 1
  804. $wh_lift moveUp 32
  805. waitFor $wh_lift
  806.  
  807. $wh_lift time 5
  808. $wh_lift moveSouth 160
  809. waitFor $wh_lift
  810.  
  811. $wh_lift time 1
  812. $wh_lift moveDown 32
  813. waitFor $wh_lift
  814. $wh_lift stopsound
  815.  
  816. thread lower_warhead_elevator_thread
  817. waitForThread parm.previousthread
  818. wait 3
  819.  
  820. $wh_lift playsound environment/levelsnds/muntp/observ2.wav
  821. $wh_lift time 2
  822. $wh_lift rotateYdown 90
  823. waitFor $wh_lift
  824. $wh_lift stopsound
  825.  
  826. $warhead1 playsound environment/machine/pneumach/Mchhss6.wav
  827. $warhead1 unbind $wh_lift
  828.  
  829. wait 1
  830.  
  831. $wh_lift playsound environment/levelsnds/muntp/observ2.wav
  832. $wh_lift time 1
  833. $wh_lift moveUp 32
  834. waitFor $wh_lift
  835. $wh_lift stopsound
  836.  
  837. wait 1
  838.  
  839. // Now lets move the missile into the launch bay
  840. $warhead1 bind $missile
  841. wait 0.1
  842.  
  843. thread close_warhead_door_thread
  844. thread open_missile_bay_door_thread
  845. waitForThread parm.previousthread
  846.  
  847. $carrier_base playsound environment/levelsnds/muntp/observ3.wav 4
  848. $carrier_base time 6.5
  849. $carrier_base moveSouth 208
  850. waitFor $carrier_base
  851. $carrier_base stopsound
  852.  
  853. wait 1
  854.  
  855. $carrier_base playsound environment/levelsnds/muntp/observ3.wav 4
  856. $carrier_base time 11
  857. $carrier_base moveWest 352
  858. waitFor $carrier_base
  859. $carrier_base stopsound
  860.  
  861. wait 1
  862.  
  863. $carrier_base playsound environment/levelsnds/muntp/observ3.wav 4
  864. $carrier_base time 15.5
  865. $carrier_base moveNorth 496
  866. waitFor $carrier_base
  867. $carrier_base stopsound
  868.  
  869. wait 1
  870.  
  871. $carrier_base playsound environment/levelsnds/muntp/observ3.wav 4
  872. $carrier_base time 3
  873. $carrier_base rotateYup 90
  874. waitFor $carrier_base
  875. $carrier_base stopsound
  876.  
  877. end // ready_missile_thread
  878.  
  879.  
  880. // deploy_missile_thread:
  881. /////////////////////////////////////////////////////////////////////////////
  882. deploy_missile_thread:
  883.  
  884. $alarm_snd playsound environment/Alarm/klaxon3.wav 3.0
  885.  
  886. // prevent the retract_telescope_thread call to close the door from working
  887. level.dome_door_status = -1
  888.  
  889. level.missile_deploy_status = 1
  890.  
  891. thread retract_telescope_thread
  892.  
  893. thread close_missile_bay_door_thread
  894. waitForThread parm.previousthread
  895.  
  896. thread open_dome_door_thread
  897. thread open_missile_door_thread
  898. waitForThread parm.previousthread
  899.  
  900. $carrier_arm playsound environment/machine/lrgmach/bigabs.wav
  901. $carrier_lift time 6.5
  902. $carrier_lift moveUp 448
  903. waitFor $carrier_lift
  904.  
  905. $carrier_arm time 9.5
  906. $carrier_arm moveUp 576
  907. waitFor $carrier_arm
  908. $carrier_arm stopsound
  909.  
  910. $carrier_lift playsound environment/Amb_Machine/mechamb2.wav 2
  911. $carrier_holder time 3
  912. $carrier_holder rotateZup 45
  913. waitFor $carrier_holder
  914. $carrier_lift stopsound
  915. wait 5
  916.  
  917. $alarm_snd stopsound
  918.  
  919. end // deploy_missile_thread
  920.  
  921.  
  922. // call_escape_lift_thread:
  923. ////////////////////////////////////////////////////////////////////////////
  924. call_escape_lift_thread:
  925.  
  926. level.escape_lift_inuse ifnotequal 0 goto call_escape_lift_done
  927. level.escape_lift_inuse = 1
  928.  
  929. thread escape_lift_up_thread
  930. waitForThread parm.previousthread
  931.  
  932. wait 5
  933.  
  934. thread escape_lift_down_thread
  935. waitForThread parm.previousthread
  936.  
  937. level.escape_lift_inuse = 0
  938.  
  939. call_escape_lift_done:
  940.  
  941. end // call_escape_lift_thread
  942.  
  943.  
  944. // escape_lift_up_thread:
  945. ////////////////////////////////////////////////////////////////////////////
  946. escape_lift_up_thread:
  947.  
  948. // open the escape door
  949. $escape_door_area open
  950. $escape_door playsound environment/doors/pneu/mchmv1ll.wav
  951.  
  952. $escape_door time 0.3
  953. $escape_door moveDown 8
  954. waitFor $escape_door
  955.  
  956. wait 0.2
  957.  
  958. $escape_door time 1
  959. $escape_door moveEast 128
  960. waitFor $escape_door
  961. wait 0.5
  962.  
  963. // cycle the elevator
  964. $escape_liftsides playsound environment/doors/pneu/smlpnu.wav
  965. $escape_liftsides time 0.5
  966. $escape_liftsides moveUp 32
  967. waitFor $escape_liftsides
  968.  
  969. wait 0.5
  970.  
  971. $escape_lift playsound environment/elevator/elev2.wav
  972. $escape_lift time 2
  973. $escape_lift moveUp 256
  974. waitFor $escape_lift
  975. $escape_lift stopsound
  976.  
  977. wait 0.5
  978.  
  979. $escape_liftsides playsound environment/doors/pneu/smlpnu.wav
  980. $escape_liftsides time 0.5
  981. $escape_liftsides moveDown 32
  982. waitFor $escape_liftsides
  983.  
  984. end // escape_lift_up_thread
  985.  
  986.  
  987. // escape_lift_down_thread:
  988. ////////////////////////////////////////////////////////////////////////////
  989. escape_lift_down_thread:
  990.  
  991. $escape_liftsides playsound environment/doors/pneu/smlpnu.wav
  992. $escape_liftsides time 0.5
  993. $escape_liftsides moveUp 32
  994. waitFor $escape_liftsides
  995.  
  996. wait 0.5
  997.  
  998. $escape_lift playsound environment/elevator/elev2.wav
  999. $escape_lift time 2
  1000. $escape_lift moveDown 256
  1001. waitFor $escape_lift
  1002. $escape_lift stopsound
  1003.  
  1004. wait 0.5
  1005.  
  1006. $escape_liftsides playsound environment/doors/pneu/smlpnu.wav
  1007. $escape_liftsides time 0.5
  1008. $escape_liftsides moveDown 32
  1009. waitFor $escape_liftsides
  1010.  
  1011. wait 0.5
  1012.  
  1013. // close the escape door
  1014. $escape_door playsound environment/doors/pneu/mchmv1ll.wav
  1015.  
  1016. $escape_door time 1
  1017. $escape_door moveWest 128
  1018. waitFor $escape_door
  1019.  
  1020. wait 0.2
  1021.  
  1022. $escape_door time 0.3
  1023. $escape_door moveUp 8
  1024. waitFor $escape_door
  1025.  
  1026. $escape_door_area close
  1027.  
  1028. end // escape_lift_down_thread
  1029.  
  1030.  
  1031. // raise_warhead_elevator_thread:
  1032. /////////////////////////////////////////////////////////////////////////////
  1033. raise_warhead_elevator_thread:
  1034.  
  1035. $wh_elev_plat time 3
  1036. $wh_elev_bottom1 time 3
  1037. $wh_elev_bottom2 time 3
  1038. $wh_elev_top1 time 3
  1039. $wh_elev_top2 time 3
  1040.  
  1041. $wh_elev_plat playsound environment/machine/srvct1.wav
  1042.  
  1043. $wh_elev_plat moveUp 120
  1044. $wh_elev_bottom1 rotateXup 60
  1045. $wh_elev_bottom2 rotateXdown 60
  1046. $wh_elev_top1 rotateXdown 120
  1047. $wh_elev_top2 rotateXup 120
  1048. waitFor $wh_elev_top2
  1049.  
  1050. $wh_elev_plat stopsound
  1051.  
  1052. end // raise_warhead_elevator_thread
  1053.  
  1054.  
  1055. // lower_warhead_elevator_thread:
  1056. /////////////////////////////////////////////////////////////////////////////
  1057. lower_warhead_elevator_thread:
  1058.  
  1059. $wh_elev_plat time 3
  1060. $wh_elev_bottom1 time 3
  1061. $wh_elev_bottom2 time 3
  1062. $wh_elev_top1 time 3
  1063. $wh_elev_top2 time 3
  1064.  
  1065. $wh_elev_plat playsound environment/machine/srvct1.wav
  1066.  
  1067. $wh_elev_plat moveDown 120
  1068. $wh_elev_bottom1 rotateXdown 60
  1069. $wh_elev_bottom2 rotateXup 60
  1070. $wh_elev_top1 rotateXup 120
  1071. $wh_elev_top2 rotateXdown 120
  1072. waitFor $wh_elev_top2
  1073.  
  1074. $wh_elev_plat stopsound
  1075.  
  1076. end // lower_warhead_elevator_thread
  1077.  
  1078.  
  1079. // open_warhead_door_thread:
  1080. /////////////////////////////////////////////////////////////////////////////
  1081. open_warhead_door_thread:
  1082.  
  1083. $warhead_door_area open
  1084.  
  1085. $warhead_door playsound environment/doors/pneu/mchmv1ll.wav
  1086. $warhead_door time 1.5
  1087. $warhead_door moveBackward 48
  1088. waitFor $warhead_door
  1089.  
  1090. end // open_warhead_door_thread
  1091.  
  1092.  
  1093. // close_warhead_door_thread:
  1094. /////////////////////////////////////////////////////////////////////////////
  1095. close_warhead_door_thread:
  1096.  
  1097. $warhead_door playsound environment/doors/pneu/mchmv1ll.wav
  1098. $warhead_door time 1.5
  1099. $warhead_door moveForward 48
  1100. waitFor $warhead_door
  1101.  
  1102. $warhead_door_area close
  1103.  
  1104. end // close_warhead_door_thread
  1105.  
  1106.  
  1107. // open_missile_bay_door_thread:
  1108. /////////////////////////////////////////////////////////////////////////////
  1109. open_missile_bay_door_thread:
  1110.  
  1111. $missilebay_door_area open
  1112. $missilebay_door playsound environment/machine/jsb1nf.wav 0.5
  1113.  
  1114. $missilebay_door time 3.5
  1115. $missilebay_door moveBackward 88
  1116. waitFor $missilebay_door
  1117.  
  1118. end // open_missile_bay_door_thread
  1119.  
  1120.  
  1121. // close_missile_bay_door_thread:
  1122. /////////////////////////////////////////////////////////////////////////////
  1123. close_missile_bay_door_thread:
  1124.  
  1125. $missilebay_door playsound environment/machine/jsb1nf.wav 0.5
  1126.  
  1127. $missilebay_door time 3.5
  1128. $missilebay_door moveForward 88
  1129. waitFor $missilebay_door
  1130.  
  1131. $missilebay_door_area close
  1132.  
  1133. end // close_missile_bay_door_thread
  1134.  
  1135.  
  1136. // open_missile_door_thread:
  1137. /////////////////////////////////////////////////////////////////////////////
  1138. open_missile_door_thread:
  1139.  
  1140. $missile_door_area open
  1141. $missilebay_door playsound environment/machine/pneumach/Mchhss5.wav
  1142.  
  1143. $missile_door time 1
  1144. $missile_door moveDown 16
  1145. waitFor $missile_door
  1146.  
  1147. wait 0.5
  1148. $missilebay_door playsound environment/machine/mrclchn.wav
  1149.  
  1150. $missile_door time 3.5
  1151. $missile_door moveBackward 112
  1152. waitFor $missile_door
  1153.  
  1154. $missilebay_door stopsound
  1155.  
  1156. end // open_missile_door_thread
  1157.  
  1158.  
  1159. // close_missile_door_thread:
  1160. /////////////////////////////////////////////////////////////////////////////
  1161. close_missile_door_thread:
  1162.  
  1163. $missilebay_door playsound environment/machine/mrclchn.wav
  1164.  
  1165. $missile_door time 3.5
  1166. $missile_door moveForward 112
  1167. waitFor $missile_door
  1168.  
  1169. $missilebay_door stopsound
  1170. wait 0.5
  1171.  
  1172. $missilebay_door playsound environment/machine/pneumach/Mchhss5.wav
  1173.  
  1174. $missile_door time 1
  1175. $missile_door moveUp 16
  1176. waitFor $missile_door
  1177.  
  1178. $missile_door_area close
  1179.  
  1180. end // close_missile_door_thread
  1181.  
  1182.  
  1183. // open_dome_door_thread:
  1184. /////////////////////////////////////////////////////////////////////////////
  1185. open_dome_door_thread:
  1186.  
  1187. level.dome_door_status ifnotequal 0 goto open_dome_door_done
  1188. level.dome_door_status = 1
  1189.  
  1190. $dome_door playsound environment/machine/jsb1nf.wav 0.5
  1191.  
  1192. $dome_door time 3
  1193. $dome_door moveBackward 96
  1194. waitFor $dome_door
  1195.  
  1196. open_dome_door_done:
  1197.  
  1198. end // open_dome_door_thread
  1199.  
  1200.  
  1201. // close_dome_door_thread:
  1202. /////////////////////////////////////////////////////////////////////////////
  1203. close_dome_door_thread:
  1204.  
  1205. level.dome_door_status ifnotequal 1 goto close_dome_door_done
  1206. level.dome_door_status = 0
  1207.  
  1208. $dome_door playsound environment/machine/jsb1nf.wav 0.5
  1209.  
  1210. $dome_door time 3
  1211. $dome_door moveForward 96
  1212. waitFor $dome_door
  1213.  
  1214. close_dome_door_done:
  1215.  
  1216. end // close_dome_door_thread
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238. // explode1_thread:
  1239. ////////////////////////////////////////////////////////////////////////////
  1240. explode1_thread:
  1241.  
  1242. $explode1_1 setdamage 200
  1243. $explode1_2 setdamage 200
  1244.  
  1245. trigger $explode1_explode
  1246. trigger $explode1_eq
  1247.  
  1248. thread explode1_1_thread
  1249. thread explode1_2_thread
  1250.  
  1251. $explode1_4 time 0.2
  1252. $explode1_4 moveDown 8
  1253. $explode1_4 rotateZdown 10
  1254. waitFor $explode1_4
  1255.  
  1256. end // explode1_thread
  1257.  
  1258.  
  1259. // explode1_1_thread:
  1260. ////////////////////////////////////////////////////////////////////////////
  1261. explode1_1_thread:
  1262.  
  1263. $explode1_1 rotateZ 380
  1264. $explode1_1 shatter "0 0 0" 50 10 50 .1 0
  1265.  
  1266. $explode1_1 time .2
  1267. $explode1_1 moveto $explode1_1_way1
  1268. waitFor $explode1_1
  1269.  
  1270. $explode1_1 time .3
  1271. $explode1_1 moveto $explode1_1_way2
  1272. waitFor $explode1_1
  1273.  
  1274. $explode1_1 time .4
  1275. $explode1_1 moveto $explode1_1_way3
  1276. waitFor $explode1_1
  1277.  
  1278. $explode1_1 shatter "0 0 0" 50 10 50 .05 0
  1279. $explode1_1 rotateZ 0
  1280.  
  1281. end // explode1_1_thread
  1282.  
  1283.  
  1284. // explode1_2_thread:
  1285. ////////////////////////////////////////////////////////////////////////////
  1286. explode1_2_thread:
  1287.  
  1288. $explode1_2 rotateY 180
  1289. $explode1_2 rotateZ -360
  1290. $explode1_2 shatter "0 0 0" 50 10 50 .1 0
  1291.  
  1292. $explode1_2 time .3
  1293. $explode1_2 moveto $explode1_2_way1
  1294. waitFor $explode1_2
  1295.  
  1296. $explode1_2 time .4
  1297. $explode1_2 moveto $explode1_2_way2
  1298. waitFor $explode1_2
  1299.  
  1300. $explode1_2 rotateZ 0
  1301.  
  1302. $explode1_2 time .5
  1303. $explode1_2 moveto $explode1_2_way3
  1304. waitFor $explode1_2
  1305.  
  1306. $explode1_2 rotateY 0
  1307.  
  1308. end // explode1_2_thread
  1309.  
  1310.  
  1311. // explode2_thread:
  1312. ////////////////////////////////////////////////////////////////////////////
  1313. explode2_thread:
  1314.  
  1315. $explode2_1 setdamage 200
  1316. $explode2_2 setdamage 200
  1317. $explode2_3 setdamage 200
  1318.  
  1319. trigger $explode2_explode
  1320. trigger $explode2_eq
  1321. trigger $explode2_damage
  1322.  
  1323. thread explode2_1_thread
  1324. thread explode2_2_thread
  1325. thread explode2_3_thread
  1326.  
  1327. end // explode2_thread
  1328.  
  1329.  
  1330. // explode2_1_thread:
  1331. ////////////////////////////////////////////////////////////////////////////
  1332. explode2_1_thread:
  1333.  
  1334. $explode2_1 rotateZ 410
  1335. $explode2_1 shatter "0 0 0" 50 10 50 .1 0
  1336.  
  1337. $explode2_1 time .3
  1338. $explode2_1 moveto $explode2_1_way1
  1339. waitFor $explode2_1
  1340.  
  1341. $explode2_1 time .4
  1342. $explode2_1 moveto $explode2_1_way2
  1343. waitFor $explode2_1
  1344.  
  1345. $explode2_1 time .5
  1346. $explode2_1 moveto $explode2_1_way3
  1347. waitFor $explode2_1
  1348.  
  1349. $explode2_1 shatter "0 0 0" 50 10 50 .05 0
  1350. $explode2_1 rotateZ 0
  1351.  
  1352.  
  1353. end // explode2_1_thread
  1354.  
  1355.  
  1356. // explode2_2_thread:
  1357. ////////////////////////////////////////////////////////////////////////////
  1358. explode2_2_thread:
  1359.  
  1360. $explode2_2 rotateX -405
  1361. $explode2_2 shatter "0 0 0" 50 10 50 .1 0
  1362.  
  1363. $explode2_2 time .3
  1364. $explode2_2 moveto $explode2_2_way1
  1365. waitFor $explode2_2
  1366.  
  1367. $explode2_2 time .4
  1368. $explode2_2 moveto $explode2_2_way2
  1369. waitFor $explode2_2
  1370.  
  1371. $explode2_2 time .5
  1372. $explode2_2 moveto $explode2_2_way3
  1373. waitFor $explode2_2
  1374.  
  1375. $explode2_2 shatter "0 0 0" 50 10 50 .05 0
  1376. $explode2_2 rotateX 0
  1377.  
  1378. end // explode2_2_thread
  1379.  
  1380.  
  1381. // explode2_3_thread:
  1382. ////////////////////////////////////////////////////////////////////////////
  1383. explode2_3_thread:
  1384.  
  1385. $explode2_3 time 0.2
  1386. $explode2_3 moveDown 8
  1387. $explode2_3 rotateXup 15
  1388. waitFor $explode2_3
  1389.  
  1390. end // explode2_3_thread
  1391.  
  1392.  
  1393. // explode3_thread:
  1394. ////////////////////////////////////////////////////////////////////////////
  1395. explode3_thread:
  1396.  
  1397. $explode3_1 setdamage 200
  1398. $explode3_2 setdamage 200
  1399. $explode3_3 setdamage 200
  1400.  
  1401. trigger $explode3_explode
  1402. trigger $explode3_eq
  1403. trigger $explode3_damage
  1404.  
  1405. thread explode3_1_thread
  1406. thread explode3_2_thread
  1407. thread explode3_3_thread
  1408.  
  1409. level.telescope_status = 2
  1410. level.gears_status = 2
  1411.  
  1412. end // explode3_thread
  1413.  
  1414.  
  1415. // explode3_1_thread:
  1416. ////////////////////////////////////////////////////////////////////////////
  1417. explode3_1_thread:
  1418.  
  1419. $explode3_1 shatter "0 0 0" 30 10 50 .05 0
  1420.  
  1421. $explode3_1 time .5
  1422. $explode3_1 moveSouth 8
  1423. $explode3_1 rotateZdown 30
  1424. waitFor $explode3_1
  1425.  
  1426. trigger $explode3_glass
  1427.  
  1428. $gear1 time .2
  1429. $explode3_1 time .2
  1430. $gear1 rotateZdown 5
  1431. $explode3_1 rotateZdown 7
  1432. waitFor $explode3_1
  1433.  
  1434. end // explode3_1_thread
  1435.  
  1436.  
  1437. // explode3_2_thread:
  1438. ////////////////////////////////////////////////////////////////////////////
  1439. explode3_2_thread:
  1440.  
  1441. $explode3_2 rotateY 540
  1442. $explode3_2 shatter "0 0 0" 50 10 50 .05 0
  1443.  
  1444. $explode3_2 time .3
  1445. $explode3_2 moveto $explode3_2_way1
  1446. waitFor $explode3_2
  1447.  
  1448. $explode3_2 time .4
  1449. $explode3_2 moveto $explode3_2_way2
  1450. waitFor $explode3_2
  1451.  
  1452. $explode3_2 time .5
  1453. $explode3_2 moveto $explode3_2_way3
  1454. waitFor $explode3_2
  1455.  
  1456. $explode3_2 rotateY 0
  1457. $explode3_2 shatter "0 0 0" 50 10 50 .05 0
  1458.  
  1459. end // explode3_2_thread
  1460.  
  1461.  
  1462. // explode3_3_thread:
  1463. ////////////////////////////////////////////////////////////////////////////
  1464. explode3_3_thread:
  1465.  
  1466. $explode3_3 rotateY -360
  1467. $explode3_3 shatter "0 0 0" 50 10 50 .05 0
  1468.  
  1469. $explode3_3 time .3
  1470. $explode3_3 moveto $explode3_3_way1
  1471. waitFor $explode3_3
  1472.  
  1473. $explode3_3 time .4
  1474. $explode3_3 moveto $explode3_3_way2
  1475. waitFor $explode3_3
  1476.  
  1477. $explode3_3 time .4
  1478. $explode3_3 moveto $explode3_3_way3
  1479. waitFor $explode3_3
  1480.  
  1481. $explode3_3 rotateY 0
  1482. $explode3_3 shatter "0 0 0" 50 10 50 .05 0
  1483.  
  1484. end // explode3_3_thread
  1485.  
  1486.  
  1487. // explode4_thread:
  1488. ////////////////////////////////////////////////////////////////////////////
  1489. explode4_thread:
  1490.  
  1491. $explode4_1 setdamage 200
  1492. $explode4_2 setdamage 200
  1493.  
  1494. trigger $explode4_explode
  1495. trigger $explode4_eq
  1496. trigger $explode4_damage
  1497.  
  1498. thread explode4_1_thread
  1499. thread explode4_2_thread
  1500.  
  1501. end // explode4_thread
  1502.  
  1503.  
  1504. // explode4_1_thread:
  1505. ////////////////////////////////////////////////////////////////////////////
  1506. explode4_1_thread:
  1507.  
  1508. $explode4_1 rotateY 420
  1509. $explode4_1 rotateZ 440
  1510. $explode4_1 shatter "0 0 0" 50 10 50 .05 0
  1511.  
  1512. $explode4_1 time .2
  1513. $explode4_1 moveto $explode4_1_way1
  1514. waitFor $explode4_1
  1515.  
  1516. $explode4_1 time .3
  1517. $explode4_1 moveto $explode4_1_way2
  1518. waitFor $explode4_1
  1519.  
  1520. $explode4_1 rotateY 0
  1521. $explode4_1 rotateZ 0
  1522. $explode4_1 shatter "0 0 0" 50 10 50 .05 0
  1523.  
  1524. end // explode4_1_thread
  1525.  
  1526.  
  1527. // explode4_2_thread:
  1528. ////////////////////////////////////////////////////////////////////////////
  1529. explode4_2_thread:
  1530.  
  1531. $ls_explode4 turnOff
  1532.  
  1533. $explode4_2 time .4
  1534. $explode4_2 rotateZdown 80
  1535. waitFor $explode4_2
  1536.  
  1537. $explode4_2 time .4
  1538. $explode4_2 rotateZup 70
  1539. waitFor $explode4_2
  1540.  
  1541. $explode4_2 time .4
  1542. $explode4_2 rotateZdown 60
  1543. waitFor $explode4_2
  1544.  
  1545. $explode4_2 time .4
  1546. $explode4_2 rotateZup 30
  1547. waitFor $explode4_2
  1548.  
  1549. $explode4_2 time .4
  1550. $explode4_2 rotateZdown 10
  1551. waitFor $explode4_2
  1552.  
  1553. $explode4_2 time .4
  1554. $explode4_2 rotateZup 10
  1555. waitFor $explode4_2
  1556.  
  1557. $explode4_2 time .4
  1558. $explode4_2 rotateZdown 10
  1559. waitFor $explode4_2
  1560.  
  1561. $explode4_2 time .4
  1562. $explode4_2 rotateZup 10
  1563. waitFor $explode4_2
  1564.  
  1565. $explode4_2 time .4
  1566. $explode4_2 rotateZdown 10
  1567. waitFor $explode4_2
  1568.  
  1569. $explode4_2 ondamage explode4_2_fall
  1570. pause
  1571.  
  1572. explode4_2_fall:
  1573. $explode4_2 nodamage 
  1574.  
  1575. $explode4_2 time 1
  1576. $explode4_2 moveWest 64
  1577. $explode4_2 moveSouth 64
  1578. $explode4_2 moveDown 192
  1579. $explode4_2 rotateZdown 310
  1580. waitFor $explode4_2
  1581.  
  1582. end // explode4_2_thread
  1583.  
  1584.  
  1585. // boss_entrance1_thread:
  1586. ////////////////////////////////////////////////////////////////////////////
  1587. boss_entrance1_thread:
  1588.  
  1589. $door2 lock
  1590. $door3 lock
  1591. $door4 lock
  1592. $door7 lock
  1593.  
  1594. music suspense normal
  1595.  
  1596. thread start_breakout_thread
  1597. waitForThread parm.previousthread
  1598.  
  1599. // activate the enemies
  1600. trigger $manu01
  1601. trigger $sarge01
  1602. trigger $sarge02
  1603. trigger $sarge03
  1604.  
  1605. boss_entrance1_loop:
  1606. wait 1
  1607.  
  1608. level.Skill ifequal 0 level.dome_enemies_killed ifless 2 goto boss_entrance1_loop
  1609. level.Skill ifequal 1 level.dome_enemies_killed ifless 3 goto boss_entrance1_loop
  1610. level.Skill ifgreaterequal 2 level.dome_enemies_killed ifless 4 goto boss_entrance1_loop
  1611.  
  1612. thread deploy_missile_thread
  1613.  
  1614. $door2 unlock
  1615. $door3 unlock
  1616. $door4 unlock
  1617. $door7 unlock
  1618.  
  1619. end // boss_entrance1_thread
  1620.  
  1621.  
  1622. // start_breakout_thread:
  1623. /////////////////////////////////////////////////////////////////////////////
  1624. start_breakout_thread:
  1625. local.count = 1
  1626.  
  1627. start_breakout_poundwall:
  1628. trigger $breakout_eq1
  1629.  
  1630. $breakout1 playsound impact/explosion/med1.wav 4
  1631. $breakout2 playsound impact/explosion/med1.wav 4
  1632.  
  1633. $breakout1 time .2
  1634. $breakout2 time .2
  1635. $breakout3 time .2
  1636. $breakout4 time .2
  1637. $breakout5 time .2
  1638. $breakout6 time .2
  1639. $breakout1 rotateXup 8
  1640. $breakout2 rotateYup 5
  1641. $breakout3 rotateXdown 5
  1642. $breakout4 rotateXdown 8
  1643. $breakout5 rotateYdown 5
  1644. $breakout6 rotateXup 5
  1645. waitFor $breakout6
  1646.  
  1647. $breakout1 shatter "0 180 0" 100 2 25 .05 0
  1648. $breakout3 shatter "0 180 0" 100 2 25 .05 0
  1649. $breakout5 shatter "0 180 0" 100 2 25 .05 0
  1650.  
  1651. $breakout1 time .2
  1652. $breakout2 time .2
  1653. $breakout3 time .2
  1654. $breakout4 time .2
  1655. $breakout5 time .2
  1656. $breakout6 time .2
  1657. $breakout1 rotateXdown 6
  1658. $breakout2 rotateYdown 3
  1659. $breakout3 rotateXup 3
  1660. $breakout4 rotateXup 6
  1661. $breakout5 rotateYup 3
  1662. $breakout6 rotateXdown 3
  1663. waitFor $breakout6
  1664. wait 2
  1665.  
  1666. local.count += 1
  1667. local.count iflessequal 3 goto start_breakout_poundwall
  1668.  
  1669. trigger $breakout_eq2
  1670.  
  1671. $breakout1 playsound impact/comp_explode/cmpmx4.wav 4
  1672. $breakout3 playsound impact/comp_explode/cmpmx4.wav 4
  1673.  
  1674. thread breakout1_thread
  1675. thread breakout2_thread
  1676. thread breakout3_thread
  1677. thread breakout4_thread
  1678. thread breakout5_thread
  1679. thread breakout6_thread
  1680.  
  1681. end // start_breakout_thread
  1682.  
  1683.  
  1684. // breakout1_thread:
  1685. /////////////////////////////////////////////////////////////////////////////
  1686. breakout1_thread:
  1687.  
  1688. $breakout1 rotateX 270
  1689. $breakout1 shatter "0 180 0" 150 10 50 .02 0
  1690.  
  1691. $breakout1 time .3
  1692. $breakout1 moveto $breakout1_way1
  1693. waitFor $breakout1
  1694.  
  1695. $breakout1 time .3
  1696. $breakout1 moveto $breakout1_way2
  1697. waitFor $breakout1
  1698.  
  1699. $breakout1 time .4
  1700. $breakout1 moveto $breakout1_way3
  1701. waitFor $breakout1
  1702.  
  1703. $breakout1 rotateX 0
  1704. $breakout1 remove
  1705.  
  1706. end // breakout1_thread
  1707.  
  1708.  
  1709. // breakout2_thread:
  1710. /////////////////////////////////////////////////////////////////////////////
  1711. breakout2_thread:
  1712.  
  1713. $breakout2 rotateX 180
  1714. $breakout2 rotateY 360
  1715. $breakout2 shatter "0 180 0" 150 10 50 .02 0
  1716.  
  1717. $breakout2 time .2
  1718. $breakout2 moveto $breakout2_way1
  1719. waitFor $breakout2
  1720.  
  1721. $breakout2 time .3
  1722. $breakout2 moveto $breakout2_way2
  1723. waitFor $breakout2
  1724.  
  1725. $breakout2 rotateX 0
  1726. $breakout2 rotateY 0
  1727.  
  1728. $breakout2 time .4
  1729. $breakout2 moveto $breakout2_way3
  1730. waitFor $breakout2
  1731.  
  1732. $breakout2 shatter "0 180 0" 150 10 50 .02 0
  1733. $breakout2 remove
  1734.  
  1735. end // breakout2_thread
  1736.  
  1737.  
  1738. // breakout3_thread:
  1739. /////////////////////////////////////////////////////////////////////////////
  1740. breakout3_thread:
  1741.  
  1742. wait .5
  1743.  
  1744. $breakout3 rotateX -180
  1745.  
  1746. $breakout3 time .5
  1747. $breakout3 moveto $breakout3_way1
  1748. waitFor $breakout3
  1749.  
  1750. $breakout3 rotateX 0
  1751. $breakout3 notsolid
  1752.  
  1753. end // breakout3_thread
  1754.  
  1755.  
  1756. // breakout4_thread:
  1757. /////////////////////////////////////////////////////////////////////////////
  1758. breakout4_thread:
  1759.  
  1760. $breakout4 rotateX -60
  1761. $breakout4 shatter "0 180 0" 100 10 50 .05 0
  1762.  
  1763. $breakout4 time .3
  1764. $breakout4 moveto $breakout4_way1
  1765. waitFor $breakout4
  1766.  
  1767. $breakout4 time .3
  1768. $breakout4 moveto $breakout4_way2
  1769. waitFor $breakout4
  1770.  
  1771. $breakout4 time .4
  1772. $breakout4 moveto $breakout4_way3
  1773. waitFor $breakout4
  1774.  
  1775. $breakout4 time .5
  1776. $breakout4 moveto $breakout4_way4
  1777. waitFor $breakout4
  1778.  
  1779. $breakout4 rotateX 0
  1780. $breakout4 notsolid
  1781.  
  1782. end // breakout4_thread
  1783.  
  1784.  
  1785. // breakout5_thread:
  1786. /////////////////////////////////////////////////////////////////////////////
  1787. breakout5_thread:
  1788.  
  1789. $breakout5 rotateY 360
  1790. $breakout5 shatter "0 180 0" 50 10 50 .02 0
  1791.  
  1792. $breakout5 time .5
  1793. $breakout5 moveto $breakout5_way1
  1794. waitFor $breakout5
  1795.  
  1796. $breakout5 time .7
  1797. $breakout5 moveto $breakout5_way2
  1798. waitFor $breakout5
  1799.  
  1800. $breakout5 rotateY 0
  1801. $breakout5 shatter "0 180 0" 50 10 50 .02 0
  1802. $breakout5 remove
  1803.  
  1804. end // breakout5_thread
  1805.  
  1806.  
  1807. // breakout6_thread:
  1808. /////////////////////////////////////////////////////////////////////////////
  1809. breakout6_thread:
  1810.  
  1811. $breakout6 rotateX 370
  1812. $breakout6 shatter "0 180 0" 50 10 50 .02 0
  1813.  
  1814. $breakout6 time .7
  1815. $breakout6 moveto $breakout6_way1
  1816. waitFor $breakout6
  1817.  
  1818. $breakout6 time .5
  1819. $breakout6 moveto $breakout6_way2
  1820. waitFor $breakout6
  1821.  
  1822. $breakout6 rotateX 0
  1823.  
  1824. $breakout6 time .6
  1825. $breakout6 moveto $breakout6_way3
  1826. waitFor $breakout6
  1827.  
  1828. $breakout6 shatter "0 180 0" 50 10 50 .02 0
  1829. $breakout6 remove
  1830.  
  1831. end // breakout6_thread
  1832.  
  1833.  
  1834. // office_securitypad_thread:
  1835. /////////////////////////////////////////////////////////////////////////////
  1836. office_securitypad_thread:
  1837.  
  1838. music success normal
  1839.  
  1840. level.greencard_status ifnotequal 0 goto office_securitypad_done
  1841. level.greencard_status = 1
  1842.  
  1843. *1 playsound environment/computer/beeps/affirm1.wav 2
  1844.  
  1845. $door5 unlock
  1846. $door6 unlock
  1847. $outside_door unlock
  1848.  
  1849. @greencard_surf frame 1
  1850.  
  1851. office_securitypad_done:
  1852.  
  1853. end // office_securitypad_thread
  1854.  
  1855.  
  1856. // balcony_securitypad_thread:
  1857. /////////////////////////////////////////////////////////////////////////////
  1858. balcony_securitypad_thread:
  1859.  
  1860. music success normal
  1861.  
  1862. level.yellowcard_status ifnotequal 0 goto balcony_securitypad_done
  1863. level.yellowcard_status = 1
  1864.  
  1865. *1 playsound environment/computer/beeps/affirm1.wav 2
  1866.  
  1867. $conf_door3 unlock
  1868. $conf_door4 unlock
  1869.  
  1870. @yellowcard_surf frame 1
  1871.  
  1872. balcony_securitypad_done:
  1873.  
  1874. end // balcony_securitypad_thread
  1875.  
  1876.  
  1877. // trapdoor_thread:
  1878. /////////////////////////////////////////////////////////////////////////////
  1879. trapdoor_thread:
  1880.  
  1881. music surprise normal
  1882.  
  1883. // FIXME: play a sound
  1884.  
  1885. $trapdoor_top notsolid
  1886. $trapdoor_bottom notsolid
  1887.  
  1888. $trapdoor_top time 0.2
  1889. $trapdoor_bottom time 0.2
  1890. $trapdoor_top moveDown 32
  1891. $trapdoor_top moveNorth 16
  1892. $trapdoor_bottom moveDown 32
  1893. $trapdoor_bottom moveSouth 16
  1894. $trapdoor_top rotateZup 90
  1895. $trapdoor_bottom rotateZdown 90
  1896. waitFor $trapdoor_bottom    
  1897.  
  1898. end // trapdoor_thread
  1899.  
  1900.  
  1901. // exit_thread:
  1902. /////////////////////////////////////////////////////////////////////////////
  1903. exit_thread:
  1904.  
  1905. fadeout 1 0 0 0
  1906.  
  1907. end // exit_thread
  1908.  
  1909.  
  1910. //===========================================================================
  1911. //===========================================================================
  1912. // CHARACTERS
  1913. //===========================================================================
  1914. //===========================================================================
  1915. // init_character_items_thread:
  1916. /////////////////////////////////////////////////////////////////////////////
  1917. init_character_items_thread:
  1918.  
  1919. $sarge01 item GreenCard 1
  1920.  
  1921. end // init_character_items_thread
  1922.  
  1923.  
  1924. // tech01_thread:
  1925. ////////////////////////////////////////////////////////////////////////////
  1926. tech01_thread:
  1927.  
  1928. local.self enemy
  1929.  
  1930. end // tech01_thread
  1931.  
  1932.  
  1933. // tech02_thread:
  1934. ////////////////////////////////////////////////////////////////////////////
  1935. tech02_thread:
  1936.  
  1937. local.self enemy
  1938.  
  1939. end // tech02_thread
  1940.  
  1941.  
  1942. // elexis1_thread:
  1943. ////////////////////////////////////////////////////////////////////////////
  1944. elexis1_thread:
  1945.  
  1946. local.self enemy
  1947. local.self nodamage
  1948.  
  1949. local.self ignoreall
  1950. local.self definestate activate elexis1_activate1
  1951. pause
  1952.  
  1953. elexis1_activate1:
  1954. local.self ignore activate
  1955.  
  1956. local.self anim munt_speech_1
  1957. waitFor local.self
  1958.  
  1959. local.self anim munt_speech_2
  1960. waitFor local.self
  1961.  
  1962. local.self definestate activate elexis1_activate2
  1963. pause
  1964.  
  1965. elexis1_activate2:
  1966. local.self ignore activate
  1967.  
  1968. thread escape_lift_up_thread
  1969.  
  1970. local.self runto $elexis1_node1
  1971. waitFor local.self
  1972.  
  1973. local.self runto $elexis1_node2
  1974. waitFor local.self
  1975.  
  1976. local.self runto $elexis1_node3
  1977. waitFor local.self
  1978.  
  1979. thread escape_lift_down_thread
  1980. waitForThread parm.previousthread
  1981.  
  1982. $conf_door1 unlock
  1983. $conf_door2 unlock
  1984. $control_room_door unlock
  1985. $conf_chair solid
  1986.  
  1987. local.self remove
  1988.  
  1989. end // elexis1_thread
  1990.  
  1991.  
  1992. // elexis2_thread:
  1993. ////////////////////////////////////////////////////////////////////////////
  1994. elexis2_thread:
  1995.  
  1996. local.self enemy
  1997. local.self nodamage
  1998.  
  1999. local.self ignoreall
  2000. local.self definestate activate elexis2_activate1
  2001. pause
  2002.  
  2003. elexis2_activate1:
  2004. local.self ignore activate
  2005.  
  2006. local.self walkto $elexis2_node1
  2007. waitFor local.self
  2008.  
  2009. local.self anim pose
  2010. waitFor local.self
  2011.  
  2012. local.self anim idle
  2013.  
  2014. end // elexis2_thread
  2015.  
  2016.  
  2017. // confguy01_thread:
  2018. ////////////////////////////////////////////////////////////////////////////
  2019. confguy01_thread:
  2020.  
  2021. local.self notsolid
  2022. local.self enemy
  2023.  
  2024. local.self ignoreall
  2025. local.self respondto pain
  2026. local.self anim sitting
  2027. local.self definestate activate confguy01_activate
  2028. pause
  2029.  
  2030. confguy01_activate:
  2031.  
  2032. local.self runto $conf_node2
  2033. waitFor local.self
  2034.  
  2035. local.self remove
  2036.  
  2037. end // confguy01_thread
  2038.  
  2039.  
  2040. // confguy02_thread:
  2041. ////////////////////////////////////////////////////////////////////////////
  2042. confguy02_thread:
  2043.  
  2044. local.self notsolid
  2045. local.self enemy
  2046.  
  2047. local.self ignoreall
  2048. local.self respondto pain
  2049. local.self anim sitidle1
  2050. local.self definestate activate confguy02_activate
  2051. pause
  2052.  
  2053. confguy02_activate:
  2054.  
  2055. local.self runto $conf_node2
  2056. waitFor local.self
  2057.  
  2058. local.self remove
  2059.  
  2060. end // confguy02_thread
  2061.  
  2062.  
  2063. // confguy03_thread:
  2064. ////////////////////////////////////////////////////////////////////////////
  2065. confguy03_thread:
  2066.  
  2067. local.self notsolid
  2068. local.self enemy
  2069.  
  2070. local.self ignoreall
  2071. local.self respondto pain
  2072. local.self anim sitting
  2073. local.self definestate activate confguy03_activate
  2074. pause
  2075.  
  2076. confguy03_activate:
  2077.  
  2078. local.self runto $conf_node1
  2079. waitFor local.self
  2080.  
  2081. local.self remove
  2082.  
  2083. end // confguy03_thread
  2084.  
  2085.  
  2086. // confguy04_thread:
  2087. ////////////////////////////////////////////////////////////////////////////
  2088. confguy04_thread:
  2089.  
  2090. local.self notsolid
  2091. local.self enemy
  2092.  
  2093. local.self ignoreall
  2094. local.self respondto pain
  2095. local.self anim sitidle1
  2096. local.self definestate activate confguy04_activate
  2097. pause
  2098.  
  2099. confguy04_activate:
  2100.  
  2101. local.self runto $conf_node1
  2102. waitFor local.self
  2103.  
  2104. local.self remove
  2105.  
  2106. end // confguy04_thread
  2107.  
  2108.  
  2109. // confguy05_thread:
  2110. ////////////////////////////////////////////////////////////////////////////
  2111. confguy05_thread:
  2112.  
  2113. local.self notsolid
  2114. local.self enemy
  2115.  
  2116. local.self ignoreall
  2117. local.self respondto pain
  2118. local.self anim sitidle1
  2119. local.self definestate activate confguy05_activate
  2120. pause
  2121.  
  2122. confguy05_activate:
  2123.  
  2124. local.self runto $conf_node1
  2125. waitFor local.self
  2126.  
  2127. local.self remove
  2128.  
  2129. end // confguy05_thread
  2130.  
  2131.  
  2132. // confguy06_thread:
  2133. ////////////////////////////////////////////////////////////////////////////
  2134. confguy06_thread:
  2135.  
  2136. local.self notsolid
  2137. local.self enemy
  2138.  
  2139. local.self ignoreall
  2140. local.self respondto pain
  2141. local.self anim sitting
  2142. local.self definestate activate confguy06_activate
  2143. pause
  2144.  
  2145. confguy06_activate:
  2146.  
  2147. local.self runto $conf_node2
  2148. waitFor local.self
  2149.  
  2150. local.self remove
  2151.  
  2152. end // confguy06_thread
  2153.  
  2154.  
  2155. // manu01_thread:
  2156. /////////////////////////////////////////////////////////////////////////////
  2157. manu01_thread:
  2158.  
  2159. level.Skill ifequal 0 local.self health 600
  2160. level.Skill ifequal 1 local.self health 800
  2161. level.Skill ifgreater 1 local.self health 1000
  2162.  
  2163. local.self ignoreall
  2164. local.self definestate activate manu01_activate
  2165. local.self definestate killed manu01_killed
  2166. pause
  2167.  
  2168. manu01_activate:
  2169. local.self ignore activate
  2170.  
  2171. //level.telescope_status ifequal 0 local.self runto $manu01_node1
  2172. //level.telescope_status ifequal 1 local.self runto $manu01_node2
  2173. //waitFor local.self
  2174.  
  2175. //local.self anim melee1
  2176. //waitFor local.self
  2177.  
  2178. //level.telescope_status ifequal 0 thread destroy_telescope_retracted_thread
  2179. //level.telescope_status ifequal 1 thread destroy_telescope_expanded_thread
  2180.  
  2181. local.self respondtoall
  2182. local.self attackplayer
  2183.  
  2184. end // manu01_thread
  2185.  
  2186. manu01_killed:
  2187. local.self ignore killed
  2188.  
  2189. level.dome_enemies_killed += 1
  2190.  
  2191. end // manu01_thread
  2192.  
  2193.  
  2194. // sarge01_thread:
  2195. /////////////////////////////////////////////////////////////////////////////
  2196. sarge01_thread:
  2197.  
  2198. local.self ignoreall
  2199. local.self definestate activate sarge01_activate
  2200. local.self definestate killed sarge01_killed
  2201. pause
  2202.  
  2203. sarge01_activate:
  2204. local.self ignore activate
  2205.  
  2206. // This guy has the key. To prevent possibly lossing track of him in the rubble
  2207. // or falling down the missle silo, just have him stand ground.
  2208. local.self respondtoall
  2209. local.attackmode = 1
  2210. local.self attackplayer
  2211.  
  2212. end // sarge01_thread
  2213.  
  2214. sarge01_killed:
  2215. local.self ignore killed
  2216.  
  2217. level.dome_enemies_killed += 1
  2218.  
  2219. end // sarge01_thread
  2220.  
  2221.  
  2222. // sarge02_thread:
  2223. /////////////////////////////////////////////////////////////////////////////
  2224. sarge02_thread:
  2225.  
  2226. local.self ignoreall
  2227. local.self definestate activate sarge02_activate
  2228. local.self definestate killed sarge02_killed
  2229. pause
  2230.  
  2231. sarge02_activate:
  2232. local.self ignore activate
  2233.  
  2234. local.self respondtoall
  2235. local.attackmode = 2
  2236. local.self attackplayer
  2237.  
  2238. end // sarge02_thread
  2239.  
  2240. sarge02_killed:
  2241. local.self ignore killed
  2242.  
  2243. level.dome_enemies_killed += 1
  2244.  
  2245. end // sarge02_thread
  2246.  
  2247.  
  2248. // sarge03_thread:
  2249. /////////////////////////////////////////////////////////////////////////////
  2250. sarge03_thread:
  2251.  
  2252. local.self ignoreall
  2253. local.self definestate activate sarge03_activate
  2254. local.self definestate killed sarge03_killed
  2255. pause
  2256.  
  2257. sarge03_activate:
  2258. local.self ignore activate
  2259.  
  2260. local.self respondtoall
  2261. local.attackmode = 2
  2262. local.self attackplayer
  2263.  
  2264. end // sarge03_thread
  2265.  
  2266. sarge03_killed:
  2267. local.self ignore killed
  2268.  
  2269. level.dome_enemies_killed += 1
  2270.  
  2271. end // sarge03_thread
  2272.  
  2273.  
  2274. //===========================================================================
  2275. //===========================================================================
  2276. // DIALOG
  2277. //===========================================================================
  2278. //===========================================================================
  2279. // speech1_dialog_thread:
  2280. ////////////////////////////////////////////////////////////////////////////
  2281. speech1_dialog_thread:
  2282.  
  2283. thread dialog::elexis_from_the_day
  2284. level.speech1_dialog_thread = parm.previousthread
  2285. waitForThread level.speech1_dialog_thread
  2286.  
  2287. thread dialog::elexis_each_and_every
  2288. level.speech1_dialog_thread = parm.previousthread
  2289. waitForThread level.speech1_dialog_thread
  2290.  
  2291. @confboard_surf frame 1
  2292.  
  2293. thread dialog::elexis_colleagues
  2294. level.speech1_dialog_thread = parm.previousthread
  2295. waitForThread level.speech1_dialog_thread
  2296.  
  2297. thread dialog::elexis_ask_you
  2298. level.speech1_dialog_thread = parm.previousthread
  2299. waitForThread level.speech1_dialog_thread
  2300.  
  2301. @confboard_surf frame 2
  2302.  
  2303. thread dialog::elexis_i_alone
  2304. level.speech1_dialog_thread = parm.previousthread
  2305. waitForThread level.speech1_dialog_thread
  2306.  
  2307. thread dialog::elexis_ladies
  2308. level.speech1_dialog_thread = parm.previousthread
  2309. waitForThread level.speech1_dialog_thread
  2310.  
  2311. end // speech1_dialog_thread
  2312.  
  2313.  
  2314. // blade_pay_dialog_thread:
  2315. ////////////////////////////////////////////////////////////////////////////
  2316. blade_pay_dialog_thread:
  2317.  
  2318. thread dialog::blade_now_its_time
  2319. waitForThread parm.previousthread
  2320.  
  2321. end // blade_pay_dialog_thread
  2322.  
  2323.  
  2324. // speech2_dialog_thread:
  2325. ////////////////////////////////////////////////////////////////////////////
  2326. speech2_dialog_thread:
  2327.  
  2328. thread dialog::elexis_history
  2329. waitForThread parm.previousthread
  2330.  
  2331. thread dialog::blade_new_dawn
  2332. waitForThread parm.previousthread
  2333.  
  2334. trigger $elexis1
  2335. thread comotion_thread
  2336.  
  2337. end // speech2_dialog_thread
  2338.  
  2339.  
  2340. // blade_pop_a_cap_dialog_thread:
  2341. ////////////////////////////////////////////////////////////////////////////
  2342. blade_pop_a_cap_dialog_thread:
  2343.  
  2344. thread dialog::blade_pop_a_cap
  2345. waitForThread parm.previousthread
  2346.  
  2347. end //blade_pop_a_cap_dialog_thread
  2348.  
  2349.  
  2350. // elexis_flee_dialog_thread:
  2351. ////////////////////////////////////////////////////////////////////////////
  2352. elexis_flee_dialog_thread:
  2353.  
  2354. thread dialog::elexis_flee
  2355. waitForThread parm.previousthread
  2356.  
  2357. end // elexis_flee_dialog_thread
  2358.  
  2359.  
  2360. // elexis_stud_dialog_thread:
  2361. ////////////////////////////////////////////////////////////////////////////
  2362. elexis_stud_dialog_thread:
  2363.  
  2364. thread dialog::elexis_meet_daddy
  2365. wait 7
  2366.  
  2367. trigger $elexis2
  2368.  
  2369. end // elexis_stud_dialog_thread
  2370.  
  2371.  
  2372. //===========================================================================
  2373. //===========================================================================
  2374. // CONSOLES
  2375. //===========================================================================
  2376. //===========================================================================
  2377. // getmenuresult_thread:
  2378. /////////////////////////////////////////////////////////////////////////////
  2379. getmenuresult_thread:
  2380. local.Console string parm.Console
  2381.  
  2382. waitForConsole local.Console
  2383. parm.MenuResult coninput local.Console
  2384.  
  2385. end // getmenuresult_thread
  2386.  
  2387.  
  2388. // telescope_console_thread:
  2389. /////////////////////////////////////////////////////////////////////////////
  2390. telescope_console_thread:
  2391. local.Console string "con_tele"
  2392. local.ConsoleObject string "%con_tele"
  2393.  
  2394. telescope_console_mainmenu:
  2395. local.ConsoleObject conclearlayout
  2396. level.telescope_status ifnotequal 2 local.ConsoleObject conmenufile "menus/phoenix/phoenix1.001"
  2397. level.telescope_status ifequal 2 local.ConsoleObject conmenufile "menus/phoenix/phoenix1.002"
  2398. local.ConsoleObject focus menu
  2399.  
  2400. parm.Console string local.Console
  2401. thread getmenuresult_thread
  2402. local.WaitingForThread = parm.previousthread
  2403. waitForThread local.WaitingForThread
  2404. local.MenuResult string parm.MenuResult
  2405.  
  2406. local.MenuResult ifequal 1 goto telescope_expand
  2407. local.MenuResult ifequal 2 goto telescope_retract
  2408. local.MenuResult ifequal 3 goto telescope_setangle
  2409.  
  2410. telescope_expand:
  2411. thread expand_telescope_thread
  2412. waitForThread parm.previousthread
  2413.  
  2414. goto telescope_console_mainmenu
  2415.  
  2416. telescope_retract:
  2417. thread retract_telescope_thread
  2418. waitForThread parm.previousthread
  2419.  
  2420. goto telescope_console_mainmenu
  2421.  
  2422. telescope_setangle:
  2423. parm.Angle = console.telescope_angle
  2424. thread set_telescope_angle_thread
  2425. waitForThread parm.previousthread
  2426.  
  2427. goto telescope_console_mainmenu
  2428.  
  2429. end // telescope_console_thread
  2430.  
  2431.  
  2432. //===========================================================================
  2433. //===========================================================================
  2434. // MISSION COMPUTER
  2435. //===========================================================================
  2436. //===========================================================================
  2437. // phoenix_start_misscomp_thread:
  2438. /////////////////////////////////////////////////////////////////////////////
  2439. phoenix_start_misscomp_thread:
  2440.  
  2441. thread PhoenixMissionComputer
  2442. thread global/universal_script.scr::StatusUpdated
  2443. waitForThread parm.previousthread
  2444.  
  2445. end // phoenix_start_misscomp_thread
  2446.  
  2447.  
  2448. // find_elexis_misscomp_thread:
  2449. /////////////////////////////////////////////////////////////////////////////
  2450. find_elexis_misscomp_thread:
  2451.  
  2452. music success normal
  2453.  
  2454. level.PObjective1 = 1 // Locate Elexis Sinclaire
  2455. level.PObjective2 = 0 // Find The Missile Control Room
  2456. thread PhoenixMissionComputer
  2457.  
  2458. thread global/universal_script.scr::PObjectiveComplete
  2459. waitForThread parm.previousthread
  2460.  
  2461. thread global/universal_script.scr::StatusUpdated
  2462. waitForThread parm.previousthread
  2463.  
  2464. end // find_elexis_misscomp_thread
  2465.  
  2466.  
  2467. // PhoenixMissionComputer:
  2468. /////////////////////////////////////////////////////////////////////////////
  2469. PhoenixMissionComputer:
  2470. %missioncon conlayout "xv -74 yv 76 fc 0.6 0.6 1 1 string \"Underwater Passage\""
  2471. %missioncon conapplayout "xv -120 yv 60 fc 0.4 0.4 0.8 1 string \"Primary Objective(s):\""
  2472.  
  2473. level.PObjective1 ifequal 0 %missioncon conapplayout "xv -118 yv 48 spicn b_blank 0.5 0.5 xv -116 yv 48 fc 0.7 0.7 0.7 1 string \" Locate Elexis Sinclaire\""
  2474. level.PObjective2 ifequal 0 %missioncon conapplayout "xv -118 yv 36 spicn b_blank 0.5 0.5 xv -116 yv 36 fc 0.7 0.7 0.7 1 string \" Find The Missile Control\""
  2475. level.PObjective2 ifequal 0 %missioncon conapplayout "xv -116 yv 24 fc 0.7 0.7 0.7 1 string \" Room\""
  2476.  
  2477. level.PObjective1 ifequal 1 %missioncon conapplayout "xv -118 yv 48 spicn b_checked 0.5 0.5 xv -116 yv 48 fc 0.2 0.2 0.2 1 string \" Locate Elexis Sinclaire\""
  2478. level.PObjective2 ifequal 1 %missioncon conapplayout "xv -118 yv 36 spicn b_checked 0.5 0.5 xv -116 yv 36 fc 0.2 0.2 0.2 1 string \" Find The Missile Control\""
  2479. level.PObjective2 ifequal 1 %missioncon conapplayout "xv -116 yv 24 fc 0.2 0.2 0.2 1 string \" Room\""
  2480.  
  2481. level.PObjective1 ifequal 2 %missioncon conapplayout "xv -118 yv 48 spicn b_notchecked 0.5 0.5 xv -116 yv 48 fc 0.2 0.2 0.2 1 string \" Locate Elexis Sinclaire\""
  2482. level.PObjective2 ifequal 2 %missioncon conapplayout "xv -118 yv 36 spicn b_notchecked 0.5 0.5 xv -116 yv 36 fc 0.2 0.2 0.2 1 string \" Find The Missile Control\""
  2483. level.PObjective2 ifequal 2 %missioncon conapplayout "xv -116 yv 24 fc 0.2 0.2 0.2 1 string \" Room\""
  2484.  
  2485. level.PObjective1 ifequal 3 %missioncon conapplayout "xv -116 yv 48 fc 0.2 0.2 0.2 1 string \" ----------------------------\""
  2486. level.PObjective2 ifequal 3 %missioncon conapplayout "xv -116 yv 36 fc 0.2 0.2 0.2 1 string \" ----------------------------\""
  2487.  
  2488. %missioncon conapplayout "xv -120 yv 12 fc 0.4 0.4 0.8 1 string \"Secondary Objective(s):\""
  2489. %missioncon conapplayout "xv -116 yv 0 fc 0.2 0.2 0.2 1 string \" None\""
  2490.  
  2491. end // PhoenixMissionComputer
  2492.  
  2493.  
  2494. //---------------------------------------------------------------------------
  2495. // Finished Level Update
  2496. //---------------------------------------------------------------------------
  2497. LevelComplete:
  2498.  
  2499. // Clears any items in the player's inventory that need to be removed
  2500. thread global/universal_script.scr::ClearInventory
  2501.  
  2502. // Set any primary objectives left for the end of the map
  2503. //level.PObjective1 = 1 // Locate Elexis Sinclaire
  2504. level.PObjective2 = 1 // Find The Missile Control Room
  2505.  
  2506. // Fail the incomplete secondary objectives
  2507.  
  2508. // Set up the Primary Objectives
  2509. local.IMString string "oxl 2 oyt -32 fc 0.53 0.53 0.83 1 string \"Primary Objective(s):\""
  2510.  
  2511. level.PObjective1 ifequal 1 local.IMString append "oxl 6 oyt -42 spicn b_checked 0.5 0.5 oxl 18 oyt -42 fc 0.6 0.6 0.6 1 string \"Locate Elexis Sinclaire\""
  2512. level.PObjective2 ifequal 2 local.IMString append "oxl 6 oyt -52 spicn b_checked 0.5 0.5 oxl 18 oyt -52 fc 0.6 0.6 0.6 1 string \"Find The Missile Control Room\""
  2513.  
  2514. level.PObjective1 ifequal 2 local.IMString append "oxl 6 oyt -42 spicn b_notchecked 0.5 0.5 oxl 18 oyt -42 fc 0.6 0.6 0.6 1 string \"Locate Elexis Sinclaire\""
  2515. level.PObjective2 ifequal 2 local.IMString append "oxl 6 oyt -52 spicn b_notchecked 0.5 0.5 oxl 18 oyt -52 fc 0.6 0.6 0.6 1 string \"Find The Missile Control Room\""
  2516.  
  2517. // Set up the Secondary Objectives
  2518. local.IMString append "oxl 2 oyt -62 fc 0.53 0.53 0.83 1 string \"Secondary Objective(s):\""
  2519. local.IMString append "oxl 18 oyt -72 fc 0.6 0.6 0.6 1 string \"None\""
  2520.  
  2521. // Send over the information that Scott needs to load the proper intermission
  2522. loadintermission "layouts/im_layouts/phoenix_to_thrall"
  2523. intermissionlayout local.IMString
  2524.  
  2525. end
  2526.  
  2527.  
  2528. // precache:
  2529. /////////////////////////////////////////////////////////////////////////////
  2530. precache:
  2531.  
  2532. cachesound environment/elevator/elev2.wav
  2533. cachesound environment/doors/pneu/smlpnu.wav
  2534. cachesound environment/Amb_Machine/mechamb2.wav
  2535. cachesound environment/machine/synmach/Lv2rng.wav
  2536. cachesound environment/machine/lrgmach/bigabs.wav
  2537. cachesound environment/levelsnds/muntp/observ2.wav
  2538. cachesound environment/machine/pneumach/Mchhss5.wav
  2539. cachesound environment/machine/pneumach/Mchhss6.wav
  2540. cachesound environment/levelsnds/muntp/observ3.wav
  2541. cachesound environment/Alarm/klaxon3.wav
  2542. cachesound environment/doors/pneu/mchmv1ll.wav
  2543. cachesound environment/machine/srvct1.wav
  2544. cachesound environment/machine/jsb1nf.wav
  2545. cachesound environment/machine/mrclchn.wav
  2546.  
  2547. end // precache
  2548.